home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2005 October / PCWOCT05.iso / Software / FromTheMag / Ant Movie Catalog 3.5.0.2 / amc_install.exe / {app} / Scripts / PivLib.pas < prev    next >
Pascal/Delphi Source File  |  2005-03-10  |  3KB  |  114 lines

  1. (***************************************************
  2.  
  3.  
  4.     Pivello's Library - Rel. 1.0 - 27.02.2005
  5.  
  6.   Free use and distribute; no license required ;)
  7.  
  8.  
  9. ***************************************************)
  10.  
  11. unit PivLib;
  12.   
  13. var
  14.   Page: TStringList;
  15.   TmpPageStr: string;
  16.  
  17.  
  18. // --------------------------------------------------
  19. // INITIALIZATION & FINALIZATION of library
  20. // IN:  none
  21. // OUT: none
  22. // --------------------------------------------------
  23. procedure InitializePivLib;
  24. begin
  25.   Page := TStringList.Create;
  26.   TmpPageStr := '';
  27. end;
  28.  
  29. procedure FinalizePivLib;
  30. begin
  31.   Page.Free;
  32. end;
  33.  
  34.  
  35. // --------------------------------------------------
  36. // PAGE PACKING (remove extra spaces, tabs & CR)
  37. // IN:  page Url     (string)
  38. // OUT: compact page (string)
  39. // --------------------------------------------------
  40. function RemoveExtraChars(Url: string): string;
  41. var
  42.   Temp: string;
  43.   PackedPage: string;
  44.   CharPos: Integer;
  45.   n: Integer;
  46. begin
  47.   Page.Text := GetPage(Url);
  48.   for n := 0 to Page.Count - 1 do
  49.     PackedPage := PackedPage + ' ' + Page.GetString(n);
  50.   repeat
  51.     CharPos := pos('  ', PackedPage);
  52.     if CharPos = 0 then
  53.       CharPos := pos(#9, PackedPage);
  54.     if CharPos <> 0 then
  55.       begin
  56.         Temp := copy(PackedPage, 1, CharPos - 1);
  57.         Delete(PackedPage, 1, CharPos);
  58.         PackedPage := Temp + PackedPage;
  59.       end;
  60.   until((pos('  ', PackedPage) = 0) and (pos(#9, PackedPage) = 0));
  61.   result := PackedPage;
  62. end;
  63.  
  64.  
  65. // --------------------------------------------------
  66. // GET FIELD VALUES FROM PACKED PAGE
  67. // IN:  Start marker     (String)
  68. //      End marker       (string)
  69. //      Cut Start Marker (bool)
  70. //      Cut End Marker   (bool)
  71. // OUT: value            (string)
  72. // --------------------------------------------------
  73. function GetValue(MyPageStr:  string; StartMarker, EndMarker: string;
  74.   CutStartMarker, CutEndMarker: boolean): string;
  75. var
  76.   StartPos: integer;
  77.   EndPos: integer;
  78.   Value: string;
  79. begin
  80.   Value := '';
  81.   StartPos := pos(StartMarker, MyPageStr);
  82.   if (StartPos > 0) then
  83.     begin
  84.       Delete(MyPageStr, 1, StartPos - 1);
  85.     end;
  86.   StartPos := pos(StartMarker, MyPageStr);
  87.   EndPos := pos(EndMarker, MyPageStr);
  88.   if ((StartPos > 0)and(EndPos > 0)) then
  89.     begin
  90.       if CutStartMarker then
  91.         StartPos := StartPos + length(StartMarker);
  92.       if not CutEndMarker then
  93.         EndPos := EndPos + length(EndMarker);
  94.       Value := copy(MyPageStr, StartPos, EndPos-Startpos);
  95.       Delete(MyPageStr, 1, EndPos);
  96.     end;
  97.   TmpPageStr := MyPageStr;
  98.   result := Value;
  99. end;
  100.  
  101.  
  102. // --------------------------------------------------
  103. // GET TEMPORARY PageStr
  104. // IN:  none
  105. // OUT: TmpPageStr (string)
  106. // --------------------------------------------------
  107. function GetPageStr: string;
  108. begin
  109.   result := TmpPageStr;
  110. end;
  111.  
  112.  
  113. end.
  114.